package com.pug.zixun.controller.nav;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.pug.zixun.service.nav.INavService;
import com.pug.zixun.pojo.Nav;
import com.pug.zixun.vo.NavVo;
import com.pug.zixun.bo.NavBo;
import com.pug.zixun.commons.enums.ResultStatusEnum;
import com.pug.zixun.commons.ex.PugValidatorException;
import com.pug.zixun.commons.utils.fn.asserts.Vsserts;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import com.pug.zixun.controller.BaseController;
import java.util.List;
import org.pug.generator.anno.PugDoc;
/**
 * NavController
 * 创建人:yykk<br/>
 * 时间：2022-12-02 11:09:41 <br/>
 * 源码下载：前台代码 git clone https://gitee.com/kekesam/kuangstudy-pug-ui.git
 * 飞哥B站地址：后台代码 git clone https://gitee.com/kekesam/kuangstudy-pug-parent.git
 * @version 1.0.0<br/>
 *
*/

@RestController
@RequiredArgsConstructor
@Slf4j
@PugDoc(name="导航栏管理",tabname="gostudy_nav")
public class NavController extends BaseController{

    private final INavService navService;




	/**
	 * 查询导航栏管理列表信息并分页
	 * @path : /admin/nav/load
     * @method: findNavs
     * @param : navVo
     * @result : IPage<NavBo>
	 * 创建人:yykk
	 * 创建时间：2022-12-02 11:09:41
	 * @version 1.0.0
	*/
    @PostMapping("/nav/load")
    @PugDoc(name="查询导航栏管理列表信息并分页")
    public IPage<NavBo> findNavs(@RequestBody NavVo navVo) {
        return navService.findNavPage(navVo);
    }


    /**
     * 根据导航栏管理id查询明细信息
     * @method: get/{id}
     * @path : /admin/nav/get/{id}
     * @param : id
     * @result : NavBo
     * 创建人:yykk
     * 创建时间：2022-12-02 11:09:41
     * @version 1.0.0
    */
    @PostMapping("/nav/get/{id}")
    @PugDoc(name="根据导航栏管理id查询明细信息")
    public NavBo getNavById(@PathVariable("id") String id) {
        if(Vsserts.isEmpty(id)){
           throw new PugValidatorException(ResultStatusEnum.ID_NOT_EMPTY);
        }
        return navService.getNavById(new Long(id));
    }


	/**
	 * 保存和修改导航栏管理
     * @method: saveupdate
	 * @path : /admin/nav/save
     * @param : nav
     * @result : NavBo
	 * 创建人:yykk
	 * 创建时间：2022-12-02 11:09:41
	 * @version 1.0.0
	*/
    @PostMapping("/nav/saveupdate")
    @PugDoc(name="保存和修改导航栏管理")
    public NavBo saveupdateNav(@RequestBody Nav nav) {
        return navService.saveupdateNav(nav);
    }


    /**
	 * 根据导航栏管理id删除导航栏管理
     * @method: delete/{id}
     * @path : /admin/nav/delete/{id}
     * @param : id
     * @result : int
	 * 创建人:yykk
	 * 创建时间：2022-12-02 11:09:41
	 * @version 1.0.0
	*/
    @PostMapping("/nav/delete/{id}")
    @PugDoc(name="根据导航栏管理id删除导航栏管理")
    public int deleteNavById(@PathVariable("id") String id) {
        if(Vsserts.isEmpty(id)){
            throw new PugValidatorException(ResultStatusEnum.ID_NOT_EMPTY);
        }
        return navService.deleteNavById(new Long(id));
    }
    @PostMapping("/nav/update")
    public boolean updateById(@RequestBody Nav nav){
        return navService.updateById(nav);
    }


}
